package edu.nf.strategy.impl;

import cn.hutool.core.date.DateUtil;
import edu.nf.strategy.AbstractAnnualInspectionStrategy;

import java.util.Date;

/**
 * @Author : LLH
 * @create 2022/1/5
 * 小型汽车
 * 小型、微型非营运载客汽车(7座以下)享有6年免审政策,
 * 2020年11月20日起7-9座非营运小微型客车(面包车除外)纳入免检范围。
 * 2020年11月20日起，超过6年不满10年，仅需上线检测2次，分别是第6年、第8年。
 * 10年以上的，每年检验一次;
 * 15年以上的,每半年检验一次。
 */
public class SmallCarAnnualInspectionStrategy extends AbstractAnnualInspectionStrategy {
    @Override
    public Date getExpDate(String registerTime) {
        //当前时间
        Date nowDate = DateUtil.date();
        //注册时间
        Date registerDate = DateUtil.parse(registerTime,"yyyy-MM-dd");
        //六年到期时间
        Date sixExpDate = DateUtil.offsetMonth(registerDate, 72);
        //十年到期时间
        Date tenExpDate = DateUtil.offsetMonth(registerDate, 120);
        //十五年到期时间
        Date fifteenExpDate = DateUtil.offsetMonth(registerDate, 180);

        Date expDate = null;
        if(nowDate.getTime() < sixExpDate.getTime()){
            expDate = sixExpDate;
        } else if(nowDate.getTime() > sixExpDate.getTime() && nowDate.getTime() < tenExpDate.getTime()){
            expDate = getExpDate(registerDate, 24);
        }else if(nowDate.getTime() > tenExpDate.getTime() && nowDate.getTime() < fifteenExpDate.getTime()){
            expDate = getExpDate(registerDate, 12);
        }else if(nowDate.getTime() > fifteenExpDate.getTime()){
            expDate = getExpDate(registerDate, 6);
        }
        return getLastDayOfMonth(expDate);
    }

}
